package com.thesis.manage.feign;

import com.thesis.manage.common.utils.Result;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.*;

/**
 * @author php
 * @date 2018/1/24
 */
@FeignClient(name = "thesis-manage-sso")
public interface UserService {
    /**
     * 用户注册
     *
     * @param account  账号
     * @param password 密码
     * @param type     类型
     * @return result
     */
    @PostMapping(value = "/loginRegister/register")
    Result register(@RequestParam("account") String account, @RequestParam("password") String password, @RequestParam("type") Integer type);

    /**
     * 用户登录
     *
     * @param account  用户名
     * @param password 密码
     * @param type     类型
     * @return result
     */
    @PostMapping(value = "/loginRegister/login")
    Result login(@RequestParam("account") String account, @RequestParam("password") String password, @RequestParam("type") Integer type);

    /**
     * 通过token获取用户信息
     *
     * @param token 令牌
     * @return result
     */
    @GetMapping(value = "/loginRegister/userInfo")
    Result findUserByToken(@RequestParam("token") String token);

    /**
     * 验证token
     *
     * @param token 令牌
     * @return result
     */
    @PostMapping(value = "/loginRegister/check")
    Result checkToken(@RequestParam("token") String token);

    /**
     * 更新过期时间
     *
     * @param token 令牌
     * @param type  类型
     */
    @PutMapping(value = "/loginRegister/expire")
    void expire(@RequestParam("token") String token,@RequestParam("type") Integer type);

    /**
     * 退出登录
     *
     * @param token token
     * @return result
     */
    @DeleteMapping("/loginRegister/logout")
    Result logout(@RequestParam("token") String token);
}
